clear; clc; close all;

% 参数设置（q固定为0.4）
q = 0.4; % 分数阶阶数
b = 1.2; P = 1; Q = 1;
x0 = [-0.5, 0.5]; % 初始值组1
x1 = [3, -3];     % 初始值组2
N_total = 1500;

% a 参数范围和采样点数
a_list = linspace(2.2, 2.7, 200);

% 预分配存储轨迹
X0_all = cell(length(a_list), 1);
X1_all = cell(length(a_list), 1);

% 计算轨迹（可以考虑parfor加速）
for idx = 1:length(a_list)
    a = a_list(idx);
    [x0_traj, ~] = SCLMM(q, a, b, P, Q, x0(1), x0(2), N_total);
    [x1_traj, ~] = SCLMM(q, a, b, P, Q, x1(1), x1(2), N_total);
    X0_all{idx} = x0_traj(end-299:end); % 取后300个点绘制，去除瞬态
    X1_all{idx} = x1_traj(end-299:end);
end

% 绘图
figure; hold on;
for idx = 1:length(a_list)
    a = a_list(idx);
    scatter(a * ones(size(X0_all{idx})), X0_all{idx}, 5, 'b', 'filled');
    scatter(a * ones(size(X1_all{idx})), X1_all{idx}, 5, 'r', 'filled');
end
xlabel('a', 'FontSize', 14);
ylabel('x(n)', 'FontSize', 14);
title('Fig.7(b) 2D-SCLMM 分岔图', 'FontSize', 16);
legend('x_0 = (-0.5, 0.5)', 'x_1 = (3, -3)');
set(gca, 'FontSize', 12);
box on;
